<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1.声明函数                                      
        // function name(params) {
        // }
        var num1 = parseInt(prompt('从几开始'));
        var num2 = parseInt(prompt('到几结束'));
        alert(sum(num1, num2));

        function sum(num1, num2) {
            var sum = 0;
            for (var i = num1; i <= num2; i++) {
                sum += i;
            }
            return sum;
        }

        //2.形参和实参个数不匹配
        //个数一致
        console.log(sum(1, 300));

        //个数不一致  实参对于形参只按顺序取到形参个数
        console.log(sum(1, 3, 40));
        console.log(1); //如果缺一个那么num2就是undefined，如果输出num2的话，结果可能为NaN

        // 函数的返回值
        // function name(params) {
        // return 需要返回的结果;
        // }
        // return会终止函数，return后面的语句不会执行
        // return只能返回一个值，当有多个值时返回的结果是最后一个值，如果要返回多个值可以返回数组
        // 函数如果没有return，返回的是undefined

        // break，continue，return的区别
        // break：结束当前循环体
        // continue：跳出本次循环，继续下一次循环
        // return：不经可以退出循环，还能够返回return语句中的值，同时话可以结束当亲函数体内的代码

        //函数的互相调用
        fn1();

        function fn1() {
            console.log(11);
            fn2();
        }

        function fn2() {
            console.log(22);

        }

        //函数声明的两种方式
        // 1.命名函数
        function name(params) {}
        // 2. 函数表达式声明函数（匿名函数）
        var fun = function (params) {
            console.log(params);
        }
        fun('实参');
        //（1）fun是变量名 不是函数名
        //（2）函数表达式声明方式跟声明变量差不多，只不过变量里面存的是值 而 函数表达式里面存的是函数
        //（3）函数表方式也可以传递参数
    </script>
</head>

<body>

</body>

</html>